package queuedemo.queueeg;

import java.util.LinkedList;
import java.util.Queue;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * Date: 2025-01-25
 * Time: 23:30
 */
public class Mystack {

    //首先要有两个普通队列
    private Queue<Integer> qu1;
    private Queue<Integer> qu2;

    public Mystack(){
        qu1 = new LinkedList<>();
        qu2 = new LinkedList<>();
    }

    //模拟入栈
    public void push(int x){
        if (empty()){
            qu1.offer(x);
            return;
        }
        if (!qu1.isEmpty()){
            qu1.offer(x);
        }else {
            qu2.offer(x);
        }
    }

    public int pop(){
        if (empty()){
            return -1;
        }
        if (!qu1.isEmpty()){
            int size = qu1.size();
            while (size-1 != 0){
                qu2.offer(qu1.poll());
                size--;
            }
            return qu1.poll();
        }else {
            int size = qu2.size();
            while (size-1 != 0){
                qu1.offer(qu2.poll());
                size--;
            }
            return qu2.poll();
        }
    }
    public int top(){
        if (empty()){
            return -1;
        }
        if (!qu1.isEmpty()){
            int size = qu1.size();;
            int tmp = -1;
            while(size != 0) {
                tmp = qu1.poll();
                qu2.offer(tmp);
                size--;
            }
            return tmp;
        }else {
            int size = qu2.size();
            int tmp = -1;
            while(size != 0) {
                tmp = qu2.poll();
                qu1.offer(tmp);
                size--;
            }
            return tmp;
        }
    }
    public boolean empty(){
        return qu1.isEmpty() && qu2.isEmpty();
    }
}
